The present invention relates generally to a method and apparatus for compensating for movement of an imaging apparatus during image acquisition, for example camera shaken in a handheld camera and, more specifically, concerns such compensation in the context of a bar code scanner.
With the increasing resolution of digital cameras, the number of photons available to a pixel of an image area sensor in a typical photograph is decreasing rapidly. Since the photo detector of each pixel must integrate light in order to obtain a usable signal, it is not unusual to find integration times as long as 50 milliseconds in today's cameras. Unfortunately, this is a fatally long time to take a picture without a tripod. As a result, the camera moves during the integration period, resulting in a blurred image. This is particularly problematic when the camera is attempting to read a scanned code, such as barcode or a two dimensional code.
Camera shake is a problem that is well known in photography. The art has established methods for compensation, commonly referred to as “image stabilization.” Two general types of technologies have been used: optical methods and electronic methods. In optical methods, camera movement is detected by sensors, such as gyro sensors and acceleration sensors, and it is compensated by physically moving a lens or imager. Optical methods tend to be less reliable and stable than electronic methods, since they require moving parts. Electronic methods estimate image movement and process the image to compensate for the movement. Although more reliable, electronic methods are very processor intensive and time consuming. They can take as long as a few seconds. In some applications, such as bar code and two dimensional code scanners, image stabilization in less than 200 milliseconds is typically required.
Initially, we will define the different types of movement referred to herein, as demonstrated by the perspective drawing of FIG. 1. Movement will be defined in a three dimensional Cartesian coordinate system, as seen looking at the object being imaged, with the imaging device at the origin. The “X” coordinate is the horizontal axes increasing to the right, the “Y” coordinate is the vertical axes, increasing upwardly, and the “Z” coordinate is the depth of the image, increasing towards the object. “Pitch” is rotation about the X axes, “yaw” is rotation about the Y axes, and “roll” is rotation about the Z axes. In all cases, clockwise rotation will be considered positive. (See FIG. 1)
Referring to FIG. 2, there are illustrated the effects of translation and rotational movement on the image of the object being imaged. “Translation” (FIG. 2(a)) is movement along one of the axes, while “rotation” is angular movement about one of the axes. It should be noted that the total movement of the object relative to the sensor increases with distance under rotation, whereas it remains constant with translation. Typical photography, taking place at a distance from the object will therefore be particularly sensitive to rotational shake and translational movement has typically been ignored.
However, in certain applications, such as a code scanner, the object is commonly within a range of approximately 50 millimeters to approximately 200 millimeters from the sensor. In the present disclosure, such codes scanners will be considered to be operating in the “near” field. In the near field, the image must be stabilized with respect to both translation and rotation, which are comparable. This imposes far more stringent requirements on image stabilization.